<?php

/* 
 * author: TiLee
 * Decription: Class thực hiện việc xử lí email
 */
class Ltt_Email_C extends CI_Controller{
    
    var $data = array();
    
    function __construct() {
        parent::__construct();
        $this->load->library('email');
        $this->load->library('ltt_email');
    }
    /**
     * Phương thức send dùng để gởi một message dạng plaintex hoặc html
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: email,subject,message
     * email: email muốn gởi đến
     * subject: Tiêu đề của thư
     * message: nội dung của thư
     */
    function send(){
        $message = $this->data['message'];
        $mail = array("to_receiver" => $this->data['email'], 
            "subject_sender" => $this->data["subject"],
            "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
    }
    /**
     * Phương thức set_data dùng để lấy thông tin bên ngoài
     * Tham số $data là mảng một chiều được truyền vào với key là
     * Nếu email kích hoạt thì key bao gồm:
     * username,password,email,domain,active_link,cancel_link 
     */
    function set_data($data){
        $this->data = $data;
    }
    /**
     * Xóa biến toàn cục $data
     */
    function unset_data(){
        unset($this->data);
    }
    /**
     * Phương thức send_active dùng để gởi 
     * email kích hoạt thành viên vừa đăng
     * kí tài khoản.
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: username,password,email,domain,active_link,cancel_link
     */        
    function send_active(){
        $message = $this->load->view('email/mail1',$this->data,TRUE);
//        $message = "hello";
        $mail = array(
                "to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
//        exit("success");
    }
    
    /**
     * Phương thức send_confirm dùng để gởi 
     * email xác nhận thành viên vừa tạo tài khoản trực tiếp
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: username,password,email,domain
     */   
    function send_confirm(){
        $message = $this->load->view('email/mail8',$this->data,TRUE);
//        $message = "hello";
        $mail = array(
                "to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
//        exit("success");
    }
    
    /**
     * Phương thức send_birthday dùng để gởi 
     * email chúc mừng thành viên nhân ngày 
     * sinh nhật.
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: email,
     */
    function send_birthday(){
        $this->data['email'] = 'lythanhtung.cse@gmail.com';
        $message = $this->load->view('email/mail5','',TRUE);
        $mail = array(
                "to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
        echo "success<p>";
        echo $message;
    }
    /**
     * Phương thức send_ban dùng để gởi 
     * email thông báo tài khoản đã bị khóa
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: email,username, reason, contact
     * username: tên tài khoản
     * email: địa chỉ email của tài khoản username
     * reason: lý do bị khóa
     * contact: thông tin liên hệ
     */
    function send_ban(){
        $message = $this->load->view('email/mail2',  $this->data,TRUE);
        $mail = array("to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
    }
    /**
     * Phương thức send_remind dùng để nhắc tài khoản
     * đã lâu không đăng nhập.
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: email 
     */
    function send_remind(){
        $message = $this->load->view('email/mail3','',TRUE);
        $mail = array("to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
    }
    /**
     * Phương thức send_reset_password thực hiện cấp tài khoản mới thông qua email
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham truyền vào là một mảng số có key: email 
     */
    function send_reset_password(){
        $this->data["email"] = "lythanhtung.cse@gmail.com";
        //mật khẩu sẽ được tạo mới 
        $this->data["password"] = md5("3434324");
        $message = $this->load->view('email/mail4',  $this->data,TRUE);
        $mail = array("to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
    }
    /**
     * Phương thức send_new_tutoring dùng để thông báo cho phụ huynh khi có gia sư mới
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: email, name
     * name: tên gia sư
     */
    function send_new_tutoring(){
        $message = $this->load->view('email/mail6',  $this->data,TRUE);
        $mail = array("to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
    }
    /**
     * Phương thức send_new_pupil dùng để thông báo cho gia sư có lớp học mới
     * Yêu cầu: cần phải gọi phương thức set_data trước
     * với tham số truyền vào là một mảng có key: email, table
     * table: bảng các lớp học mới. Định dạng html
     */
    function send_new_pupil(){
        $message = $this->load->view('email/mail7',  $this->data,TRUE);
        $mail = array("to_receiver" => $this->data['email'], "message" => $message);
        $this->ltt_email->config($mail);
        $this->ltt_email->sendmail();
    }
}
